The specification of dates is becoming an increasingly important part of UIs of any application in which a date range is part of a query, or part of a predicate that selects specific information out of a larger collection of information. For instance, the specification of dates and/or times, or ranges of dates and/or times, is becoming an increasingly important part of UIs of “interactive applications,” including computer software applications, interactive Internet applications, interactive TV applications, search engines, VCRs, DVRs, etc. Exemplary user acts that can implicate the selection of such a range include selecting emails, documents, photos, financial transactions, television shows, or movies out of large collections of the same and selecting a range of dates/times in scheduling applications, such as calendars for personal use or for use in connection with travel Web sites.
Specifying date ranges, however, is currently problematic for a variety of reasons. One problem is that time can be difficult to represent graphically in a concise manner. For example, the overall universe from which one may want to select a date range can often be quite long—years or even decades. Representing this universe concisely is difficult, especially when high or multiple resolutions are desired, e.g., to the hour or minute or in connection with limited display space. Moreover, the recall of dates in the specific form of calendar dates is difficult for most people. Instead, people are better at recalling dates as being connected with events—“the time I went fishing with Bob.”
One common current approach for selecting dates is sometimes referred to as component-wise selection. With component-wise selection, one selects a date by specifying year, month, day, and possibly other time components individually by selecting from a list, by typing, or by a combination of both. This is common in Web sites, such as travel Web sites, wherein a user is asked to specify a date for travel. Typically, in such a scenario, a user selects a month (a first component) of travel from a list of twelve months. A user also selects the day (a second component) of the month, from a list of total days for that month, or more generically, from a list of possibly 31 days. Then, a user selects a year (a third component) of travel. The user may also express a time of day in hours (a fourth component) to travel. In this sense, each of the components represents a different granularity for the user to hone or home in on a date. In this regard, granularity refers to a way of representing time at different scales, like day, month, or year; however, the selection of four or more different components can be tedious, particularly if more than one date, e.g., departure and return travel dates, must be entered. While this approach in some sense addresses the granularity problem, namely that different selections using the same user interface may implicate vastly different periods of time, this approach does not work well for an application wherein the user is unsure of the date being selected. If the user is searching for a date the user is unsure of, honing in on an exact date via component-wise selection is not very useful in finding an appropriate date range, and would implicate many trial and error repeat entries by the user to find a useful range.
Another common current approach is sometimes referred to as a “calendar picker” mechanism. With a calendar picker, one enters a date by picking it off of a graphical representation of a calendar. Often, this is a “month-at-a-time” calendar, with arrow buttons to allow one to move between different months. This type of picker is typical for entering a single date rather than a range; however, the week-at-a-time and day-at-a-time views often seen in calendar programs are also of this type of picker, in which case they can be used for picking a range. While calendar pickers do provide a graphical representation of time, they do not do so in a manner that scales for either a large universe of times, or for a wide variety of granularities. The calendar picker also does not address the above-identified recollection problem, namely that sometimes users do not remember events or occurrences for which they may be searching as “a date” that fits into a “calendar.”
While both of the commonly used current approaches, i.e., component-wise and calendaring, address the general problem of specifying dates, neither is adequate for both ease of use or fast selection of dates. Additionally, neither approach adequately addresses the recollection problem.
Most other existing work falls into the following categories: (a) the use of temporal attributes for directing retrieval of information from temporal or multi-media databases or objects, (b) the use of timelines to visualize large bodies of temporal information, wherein a timeline is a graphical or textual display of events in chronological order and is an important technique for representation of large temporal data sets.
For instance, R. B. Allen's “Interactive Timelines as Information Systems Interfaces” (August 1995) discloses using temporal attributes of a query or a context to drive a search, for retrieval and browsing of relevant information. Allen's work uses temporal attributes of information as useful interfaces for digital libraries and interactive textbooks. C. W. Deacon's “The Wall Chart of World History” (1988) discloses the use of temporal alignment and interrelationships of events to drive the retrieval of information from larger event databases.
Catherine Plaisant's and Ben Shneiderman's “An Information Architecture to Support the Visualization of Personal Histories” (1998) discloses some techniques on visualization of timelines relating to “visualization of personal histories.” In this regard, the work of Plaisant and Shneiderman discloses a technique for intuitive visualization of personal history data using graphical timelines, wherein personal history data involves groups of events that are aggregated into facets, e.g., doctor visits, hospitalizations or lab tests.
Some audio-editing programs also include a time UI mechanism to select a snippet out of a song. For instance, a song is displayed as a timeline (linear), which allows a user to select a “left” and “right” edge of the clip, e.g., by clicking on the left and right mouse buttons. In this case, however, the user is picking a “relative time,” i.e., a time relative to the start of the song, but a date or a date range is not being selected. Thus, in addition to being linear timelines, these are directed at selecting parts of particular multi-media objects. Other ways of visualizing timelines that make better use of available screen space involve curves and distortion techniques such as fisheye, hierarchical or log nonlinearities. G. W. Furnas' “Generalized Fisheye Views” (1986) and M. Sarkar's and M. H. Brown's “Graphical Fisheye Views of Graphs” (1992) disclose fish-eye view techniques, which optimize, i.e., distort, the screen real estate to provide an appropriate level of display context, tapering off nonlinearly while moving away from a current focus level.
B. Johnson's and B. Shneiderman's “Tree-Maps: A Space Filling Approach to the Visualization of Hierarchical Information Structures” (1991) discloses hierarchical timeline displays, which facilitate zoom-out and zoom-in between overviews and details. In log transformations, the time axis is transformed to log scale to allow extremely large duration entities to be shown along with relatively short duration entities. Other existing work, such as temporal reasoning work, discloses logical reasoning with time at multiple granularities, but is not concerned with homing in on a particular date or time range.
As mentioned, granularity is a way of representing time at different scales, like day, month, or year. X. Peng Ning's, Sean Wang's and Sushil Jajodia's “An Algebraic Representation of Calendars” (2000) and Carlo Combi's “Representing Absolute Time Expressions with Vagueness, Indeterminacy and Different Granularities” (2000) disclose techniques for logically representing such granularities and being able to perform logical operations over these representations. The formalisms of Ning, Wang and Jajodia, and Combi, however, are not concerned with visual representations to an end user. Rather, their disclosure relates to logical representations of time for temporal reasoning engines.
Accordingly, there is a need for an improved mechanism that makes it easier and faster for users to specify dates and ranges of dates. Additionally, there is a need for an improved date selection mechanism that addresses different granularities of time. Still further, there is a need for an improved date selection mechanism that addresses the problem of linking user associations with a date, and the date itself.